In [1]:
import sys
sys.path.append( '/home/user/wk/heart/scr/lib/pylib/' )
sys.path.append( '/home/user/wk/scr/lib/pylib/' )
import dsp

import os
import glob
import numpy as np
import neurokit2 as nk
Loading BokehJS ...
In [2]:
fndata = './daq_v2.3_e1/res/res/1_resamp_s.mat'
use_ecg = 1
use_ppg_systolic_peaks=False

###############################
 
r=dsp.LoadMat(fndata)
(t_ppg, y_ppg, y_ppg_r, fs_ppg, t_ecg, y_ecg, fs_ecg, t_br, y_br, fs_br) = (r['t_ppg'], r['y_ppg'], r['y_ppg_r'], r['fs_ppg'],  r['t_ecg'], r['y_ecg'], r['fs_ecg'],  r['t_bp'], r['y_bp'], r['fs_bp'])
yf_ppg = dsp.Filtration(y_ppg, fs_ppg, fc=[0.5, 10], ord=2, ftype='bandpass')
yf_ecg = dsp.Filtration(y_ecg, fs_ecg, fc=[0.5, 30], ord=2, ftype='bandpass')
#yf_br = dsp.Filtration(y_br, fs_br, fc=0.3, ord=4, ftype='lowpass')
yf_br = dsp.Filtration(y_br, fs_br, fc=[0.01, 0.2], ord=2, ftype='bandpass')

if use_ecg:
    tN,N, tNN,NN = dsp.GetNNI(t_ecg, yf_ecg, fs_ecg, signal_type='ecg')
else:
    tN,N, tNN,NN = dsp.GetNNI(t_ppg, yf_ppg, fs_ppg, ppg_systolic_peaks=use_ppg_systolic_peaks, signal_type='ppg')

coorection_dbg_level = 1
NN2,corrinfo=dsp.CorrectionNNI(rr=NN, input_type='rr_ms',verbose=coorection_dbg_level, t_signal=t_ecg, y_signal=yf_ecg, t_N=tN, y_N=N)
NN = NN2
tNN = (np.cumsum( NN ) - NN)*1e-3 + tN[0]
HR = 60e3/NN
In [3]:
#w=1920//3
#h=1080//3
# w=1820//2
# h=720//2
h=300
lw=1.5
sizing_mode="fixed"
In [4]:
dsp.BPlot([t_ecg,t_ppg], [dsp.SignalScaling(yf_ecg),dsp.SignalScaling(yf_ppg)], mode='lines',
          xlabel='час, сек', ylabel='', label=['ЕКГ','ФПГ'], title='ЕКГ+ФПГ', line_width=lw,
          h=h, showlegend=True)
In [5]:
dsp.BPlot([t_ppg,t_ppg], [y_ppg,y_ppg_r], mode='lines',
          xlabel='час, сек', ylabel='ФПГ', label=['ІЧ','червон'], title='ФПГ інфрачервоний, ФПГ червоний',
          line_width=lw,h=h,showlegend=True)
In [6]:
dsp.BPlot(tNN,NN,mode='lines',
          xlabel='час, сек', ylabel='NNI, мсек', title='тахограма',
          line_width=lw, h=h,showlegend=False)
In [7]:
dsp.BPlot(tNN,HR,h=h,line_width=lw,
          xlabel='час, сек', ylabel='пульс уд/хв', title='миттевий пульс',
          showlegend=False)
In [8]:
dsp.BPlot([tNN,t_br],[dsp.SignalScaling(HR),dsp.SignalScaling(yf_br)],mode='lines',
          xlabel='час, сек', ylabel='NNI, мсек', title='митевий пульс + сигнал дихання', label=['пульс','дихання'],
          line_width=lw, h=h,showlegend=True)
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]: